{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import re\n",
    "import jieba \n",
    "import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''1、导入文件'''\n",
    "CSV_FILE_PATH_TRAIN = 'D:/alltrain/train.csv'\n",
    "CSV_FILE_PATH_TEST = 'D:/alltrain/nlp_test111.csv'\n",
    "#data=np.loadtxt(open('D:/alltrain/train.csv'),skiprows = 1, encoding='gbk',dtype=str)\n",
    "dfTrain = pd.read_csv(CSV_FILE_PATH_TRAIN, encoding = 'utf-8')\n",
    "#dfTest = pd.read_csv(CSV_FILE_PATH_TEST)\n",
    "newData = np.array(dfTrain)\n",
    "#newDataTest = np.array(dfTest)\n",
    "row = newData.shape[0]\n",
    "col = newData.shape[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([['QC0000000001', 0, 1, 0, 0, 0, 0,\n",
       "        '病情描述：病人是典型的“三高”，想吃拜阿司匹林做为预防用药，但是出现过敏症状。曾经治疗情况和效果：以前血压就高，三年前检查出糖尿病。长期服用二甲双胍和降压药。想得到怎样的帮助：病人是典型的“三高”，想吃拜阿司匹林做为预防用药，但是出现过敏症状。请问可以用血塞通分散片替代白阿司匹林做为预防性用药，长期服用吗？另外还有其他药推荐吗？'],\n",
       "       ['QC0000000002', 0, 1, 0, 0, 0, 0,\n",
       "        '病情描述：我父亲78岁,小脑梗塞，表现左眼双视，经住院输液治疗现在恢复一月余，现在看人不重影了，昨天尿中带血，肾B超提示没有病变，暂停口服阿斯匹林无血尿出现，请问医生，出现这种情况怎么办、？不服阿司匹林以后再脑梗怎么办？我父亲平时有高血压，心机缺血，正规服降压药，今天血压135/97mmHg。曾经治疗情况和效果：今年六月底出现左眼重影，去医院做的核磁检查，，提示小脑梗塞，颈部有斑块经过住院输液治疗半个月出院，出院后口服麦角林等抗血栓药物，偶尔还出现双视持续一分钟左右自行缓解，近半个月，口服阿司匹林，没在出现脑梗症状，昨天出现尿中带血情况1想得到怎样的帮助：不服阿司匹林怎么控制脑梗塞']],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "newData[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Dumping model to file cache C:\\Users\\ROHO\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.721 seconds.\n",
      "Prefix dict has been built successfully.\n"
     ]
    }
   ],
   "source": [
    "'''2、jieba设置停用集，自定义词集'''\n",
    "def stopwordslist(filepath):\n",
    "    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]\n",
    "    return stopwords\n",
    "question = dfTrain.iloc[:,dfTrain.shape[1]-1]  #问题集 （5000）\n",
    "#testQuestion = dfTest.iloc[:,dfTest.shape[1]-1]\n",
    "stopwords = stopwordslist('D:/alltrain/stop_words_12456.txt')  # 这里加载停用词的路径\n",
    "userdict = set(['拜阿司匹林','三高','二甲双胍','病情描述','深蹲']) #自定义词典\n",
    "jieba.load_userdict(userdict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''3、将各个问题分词'''\n",
    "def clean_question(sentence):  \n",
    "    questionDivide = []\n",
    "    pattern = re.compile(r'[^\\u4e00-\\u9fa5]')\n",
    "    sentence = re.sub(pattern, '', sentence) \n",
    "    segs = jieba.cut(sentence, cut_all = False)\n",
    "    for seg in segs:\n",
    "        if seg not in stopwords:#判断是否位于停用词\n",
    "          questionDivide.append(seg)\n",
    "    return questionDivide\n",
    "for i in range(len(newData)):\n",
    "  newData[:,7][i] = clean_question(str(newData[:,7][i]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([['QC0000000001', 0, 1, 0, 0, 0, 0,\n",
       "        list(['拜阿司匹林', '用药', '过敏', '症状', '血压', '糖尿病', '二甲双胍', '降压药', '拜阿司匹林', '用药', '过敏', '症状', '血塞通', '分散片', '阿司匹林', '预防性', '用药', '药'])],\n",
       "       ['QC0000000002', 0, 1, 0, 0, 0, 0,\n",
       "        list(['脑梗塞', '双视经', '住院', '输液', '看人', '肾超', '病变', '口服', '阿斯匹林', '血尿', '阿司匹林', '再脑', '梗', '高血压', '心机', '缺血', '降压药', '血压', '脑梗塞', '颈部', '斑块', '住院', '输液', '出院', '出院', '口服', '麦角', '林等', '抗血栓', '药物', '双视', '口服', '阿司匹林', '脑梗', '症状', '阿司匹林', '脑梗塞'])]],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "newData[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"4、拆分训练集测试集\"\"\"\n",
    "from sklearn.model_selection import train_test_split\n",
    "train_data, test_data = train_test_split(newData, test_size=1000, random_state = 666)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''5、获取六个类别的词库集'''\n",
    "def drop(singleLabelWords):\n",
    "    newWords = []\n",
    "    for tip in singleLabelWords:\n",
    "        if tip not in newWords:\n",
    "            newWords.append(tip)\n",
    "    return newWords\n",
    "labelsWords = []\n",
    "num = []  #各类的统计数量\n",
    "for i in range(1,col - 1):\n",
    "    singleLabelWords = []  #一种标签的词组\n",
    "    k = 0\n",
    "    for j in range(train_data.shape[0]):\n",
    "        if (train_data[j,i] == 1):\n",
    "            singleLabelWords.extend(train_data[j,col - 1])\n",
    "            k += 1\n",
    "    labelsWords.append(drop(singleLabelWords))\n",
    "    num.append(k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''6、将单独的公共健康问句与六类词库做对比'''\n",
    "def getSingleAccuracy(kindNum):\n",
    "    kindNum\n",
    "    Tcount = 0\n",
    "    predict = []\n",
    "    for i in range(test_data.shape[0]):\n",
    "        word = test_data[i,col-1]\n",
    "        if (len(word) == 0): #判断所有分词被清空的情况，即不包含任何信息的情况\n",
    "            flag = 0\n",
    "            predict.append(flag)\n",
    "            #if (test_data[i,kindNum] == flag):\n",
    "              #Tcount += 1\n",
    "        else:\n",
    "            for j in range(len(word)):\n",
    "                if (word[j] in labelsWords[kindNum - 1]):            \n",
    "                    flag = 1\n",
    "                    predict.append(flag)\n",
    "                    #if (test_data[i,kindNum] == flag):\n",
    "                     # Tcount += 1\n",
    "                    break\n",
    "                else :\n",
    "                    flag = 0\n",
    "                    #print('0')\n",
    "                    predict.append(flag)\n",
    "                    #if (test_data[i,kindNum] == flag):\n",
    "                      #Tcount += 1\n",
    "                    break\n",
    "    #print(Tcount)\n",
    "    #print(row)\n",
    "   # print(Tcount/test_data.shape[0], test_data.shape[0])\n",
    "   # acc =Tcount/test_data.shape[0]\n",
    "    return predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "result = []\n",
    "for i in range(6):\n",
    "    predict= getSingleAccuracy(i)\n",
    "    result.append(predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import recall_score\n",
    "from sklearn.metrics import f1_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "accgrade = []\n",
    "for i in range(6):  #(真实值，预测值)\n",
    "    accgrade.append(accuracy_score(test_data[:,i + 1].astype(\"int\"), result[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def getGrade(function):\n",
    "    grade = []\n",
    "    for i in range(6):  #(真实值，预测值)\n",
    "        grade.append(function(test_data[:,i + 1].astype(\"int\"), result[0]))\n",
    "    return grade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "grade = getGrade(recall_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.5642458100558659,\n",
       " 0.5657492354740061,\n",
       " 0.0,\n",
       " 0.5266666666666666,\n",
       " 0.5660377358490566,\n",
       " 0.4827586206896552]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-15-86d5fd1f1424>:3: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.\n",
      "  plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "name_list = ['label1','label2','label3','label4','label5','label6']  \n",
    "plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n",
    "plt.ylim(0,1)\n",
    "plt.xlabel('label')\n",
    "plt.ylabel('accuracy')\n",
    "plt.show()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.3607142857142857,\n",
       " 0.6607142857142857,\n",
       " 0.0,\n",
       " 0.14107142857142857,\n",
       " 0.10714285714285714,\n",
       " 0.05]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getGrade(precision_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.5642458100558659,\n",
       " 0.5657492354740061,\n",
       " 0.0,\n",
       " 0.5266666666666666,\n",
       " 0.5660377358490566,\n",
       " 0.4827586206896552]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getGrade(recall_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-18-a7eb39d28614>:3: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.\n",
      "  plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "grade = getGrade(precision_score)\n",
    "name_list = ['label1','label2','label3','label4','label5','label6']  \n",
    "plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n",
    "plt.ylim(0,1)\n",
    "plt.xlabel('label')\n",
    "plt.ylabel('precission')\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-19-ff4fc2240a55>:3: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.\n",
      "  plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "grade = getGrade(recall_score)\n",
    "name_list = ['label1','label2','label3','label4','label5','label6']  \n",
    "plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n",
    "plt.ylim(0,1)\n",
    "plt.xlabel('label')\n",
    "plt.ylabel('recall')\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-20-0420d9d45282>:3: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.\n",
      "  plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "grade = getGrade(f1_score)\n",
    "name_list = ['label1','label2','label3','label4','label5','label6']  \n",
    "plt.bar(range(len(name_list)), grade,color='rgb',tick_label=name_list)\n",
    "plt.ylim(0,1)\n",
    "plt.xlabel('label')\n",
    "plt.ylabel('f1score')\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.44008714596949894,\n",
       " 0.6095551894563426,\n",
       " 0.0,\n",
       " 0.22253521126760564,\n",
       " 0.18018018018018017,\n",
       " 0.09061488673139159]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
